// 方法对象，在dart中 方法是一个对象，方法有具体的类型 Function，既然方法是一个对象，可以进行赋值，也可以当成参数进行传递
void main(List<String> args) {
  Function func = printHello;
  print(func());

  var list2 = ["h", "e", "l", "l", "o"];
  // list2.forEach(listTimes);
  List list3 = listTimes(list2, times);
  print(list3);
  
}

String printHello(){
return "Hello";
}

List listTimes(List list, String times(str)){
  for (int index = 0; index < list.length; index ++) {
    list[index] = times(list[index]);
  }
  return list;
}

String times(str){
  return str * 3;
}